#include "BSTree.h"
#include <string>

void test1()
{
	int arr[] = { 8,3,10,1,6,7,14,13,16 };
	My_BSTree::BSTree<int> t;
	for (auto e : arr)
	{
		t.Insert(e);
	}
	t.InOrder();
	for (auto e : arr)
	{
		t.erase(e);
		t.InOrder();
	}
}

void test2()
{
	BSTree_Value::BSTree<string, string> bs;
	bs.Insert("insert", "插入");
	bs.Insert("up", "上");
	bs.Insert("down", "下");
	bs.Insert("left", "左");
	bs.Insert("right", "右");
	bs.InOrder();

	string str;
	while (cin >> str)
	{
		auto ret = bs.Find(str);
		if (ret)
		{
			cout << ret->_value << endl;
		}
		else
			cout << "没有找到，请重新输入" << endl;
	}
}

void test3()
{
	// 统计每个水果出现的个数
	BSTree_Value::BSTree<string, int> bs;
	string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜", "苹果", "香蕉", "苹果", "香蕉" };
	for (const auto& e : arr)
	{
		auto ret = bs.Find(e);
		// 如果找到就说明存在
		if (ret)  // 找到了返回值不为空
			ret->_value++;
		else      // 没有找到 直接插入这个值
			bs.Insert(e, 1);
	}
	bs.InOrder();

	BSTree_Value::BSTree<string, int> tem(bs);

}

int main()
{
	//test1();
	//test2();

	test3();

	return 0;
}